iT邦幫忙

2024 iThome 鐵人賽

DAY 0
0
自我挑戰組

Python應用系列 第 9

python 應用 day10

  • 分享至 

  • xImage
  •  
  1. 內省 (Introspection) 與反射
    Python 支持內省和反射,這意味著你可以在運行時檢查對象的屬性、方法和類型。這是一個非常強大的特性,特別是在需要構建靈活的庫或框架時。

python
複製程式碼
x = [1, 2, 3]
print(type(x)) # 輸出: <class 'list'>
print(dir(x)) # 列出所有屬性和方法
print(hasattr(x, 'append')) # 檢查是否有 'append' 方法
這些特性在框架中也得到了充分運用,例如在 ORM 系統中,會動態檢查並生成模型對應的數據庫結構。

  1. Python 的多重繼承與方法解析順序 (MRO)
    Python 支持多重繼承,這意味著一個類可以同時繼承多個父類。這樣的特性可以在設計複雜的類型層次時提供靈活性,但也可能帶來潛在的困惑。Python 使用 C3 Linearization 算法來確定方法解析順序 (MRO),確保繼承的順序是一致的。

python
複製程式碼
class A:
def do_something(self):
print("A")

class B(A):
def do_something(self):
print("B")

class C(A):
def do_something(self):
print("C")

class D(B, C):
pass

d = D()
d.do_something() # 輸出: B,因為 MRO 按 B -> C -> A 的順序解析


上一篇
python 應用 day8
下一篇
python 應用 day10(2)
系列文
Python應用11
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言